架构中的设计原则

架构中的设计原则

单一职责原则

单一职责原则核心思想就是:系统中的每一个对象应该有且只有一个单独的职责,而所有对象对象所关注的iu是自身职责的完成,也就是Single responsibility principle,也就是为了达成高内聚、低耦合。

通常一个类的职责越多,导致其变化的因素也就越多,其变化会影响到的类也越多。当这个类的某个职责发生变化,会导致类的其他部分受到影响,也就是程序的脆弱和僵硬。解决这种的问题的方法就是分耦。

里氏替换原则(LSP)

里氏替换原则的核心思想就是:任何父类出现的地方都可以用它的子类来替代。

里氏替换的意思就是:同一个继承体系中的对象应该有共同的行为特征。里氏替换原则关注怎样良好的使用继承,也就是不滥用继承,它是继承复用的基石。具体有下面四点要求:

  1. 子类必须完全实现父类的方法
  2. 子类可以有自己的特性
  3. 覆盖或者实现父类的方法时输入参数可以被放大
  4. 覆盖或者实现父类的方法时输出结果可以被缩小

依赖注入原则

依赖注入原则的核心思想就是:要依赖于抽象,不要依赖于具体的实现。

依赖注入原则的意思就是:在应用程序中,所有的类如果使用或依赖于其他的类,则都应该依赖于这些其他类的抽象类,而不是这些其他类的具体实现类。抽象层次应该不依赖于具体的实现细节(具体实现类),这样才能保证系统的可复用性和可维护性。为了实现这一点,要求开发人员在编程时针对接口编程,而不针对实现编程。

通过抽线使各个类或模块的实现彼此独立,不互相影响,实现模块间的松耦合。使用如下三种方式来实现:

  1. 通过构造函数传递依赖对象
    如在构造函数中的需要传递的参数是抽象类或者接口的方式实现
  2. 通过setter方法传递依赖对象
  3. 接口声明实现依赖对象

接口分离原则

接口分离原则的核心思想就是:不应该使一个接口涵盖不需要使用的方法,也就是一个接口不需要提供太多的行为,只应该提供一种对外的功能,不应该把所有的操作都封装到一个接口中。

这里的接口不仅仅是通过interface定义的接口,也包括对象接口,也就是对象所在的类(类似于单一职责原则)。不同的是,单一职责原则要求的是雷和方法的职责单一,注重的是业务逻辑上的划分,而接口分离原则要求的是接口方法经历少,针对一个模块尽量有用。

迪米特原则

核心思想:一个对象应当对其他对象尽可能少地了解。意思就是降低各个对象之间的耦合。

开闭原则

核心思想:对扩展开放,对修改关闭。也就是对类的改动应该是通过增加代码进行的,而不是改动现有代码。

开闭原则是对前五种原则的一个抽象总结,前五种原则是开闭原则的一些具体实现。